/*
 * VideoRender.h
 *
 *  Created on: 2016年3月17日
 *      Author: terry
 */

#ifndef VIDEORENDER_H_
#define VIDEORENDER_H_

#include "MediaRender.h"
#include "VideoWindow.h"

namespace av
{

class VideoRender : public MediaRender
{
public:
	virtual ~VideoRender() {}

	virtual int open() =0;

	virtual void setVideoWnd(void* hwnd) =0;

	virtual bool isFullscreen() =0;

	virtual int setFullscreen(bool full) =0;

	virtual int setBackImage(const char* filepath) =0;

	virtual int setRatio(int width, int height) =0;

	virtual void getRatio(int& width, int& height) =0;


	virtual void setRefClock(ReferenceClock* refClock) =0;

	virtual void step() =0;

	virtual void nextKeyFrame() =0;

	virtual void setVideoWindow(VideoWindow* window) =0;

	virtual int writeText(AVPacketPtr& pkt) = 0;

    /**
     * 运行/禁止鼠标绘制图形
     * @param enabled
     */
    virtual void enableDrawGraph(int mode) =0;

    /**
     * 设置绘制图形, JSON 格式
     * @param value	JSON字符串, 为NULL或者空表示清理图形
     * @param size
     */
    virtual void setDrawGraph(const char* value, size_t size) =0;

    /**
     * 获取绘制图形, JSON 格式
     * @return
     */
    virtual const char* getDrawGraph() =0;


};



} /* namespace av */

#endif /* VIDEORENDER_H_ */
